[ Index ] | WAROFGENERALS |
PHP Cross Reference of WAROFGENERALS MODS SOURCES |
[Summary view] [Print] [Text view]
1 ; VictorySystem.ini 2 ; This file controls the behavior of the Victory System for LOTR RTS. 3 ; Overview: 4 ; The victory system is designed to do the following: 5 ; a. Detect when a player wins a large battle. Multiple battles can happen on a single map. 6 ; b. Give a bonus to the units belonging to the winning player that were involved in the battle 7 ; How the victory system does this is by dividing the map up into cells. Each cell keeps track of the number 8 ; of 'deaths' and 'kills' for each player that happen in that cell. The system also keeps track of the total 9 ; number of 'kills' and 'deaths' for the entire map. When a threshold for the entire map (formula explained 10 ; further down) is reached then the cells are scaned to see if any cells qualify for Victory Status. For each 11 ; cell that Qualifies for Victory status all of the units within a radius of that cell are given a 'Victory' bonus. 12 ; 13 ; 14 ; There are 2 types of INI blocks 15 ; 1. VictorySystemData : Controls variables that deal with common aspects of the victory system. 16 ; 2. FactionVictoryData : Controls how a faction determines a victory, this facilitates factions being able 17 ; to have unique methods of determining what a 'victory' is. E.G. Evil factions may place less value 18 ; on losing its own units than Good factions. 19 ; SEE Comments in the INI blocks for a detailed explantation of hot the values are used. 20 ;------------------------------------------------------------------------------------------------------------------------------- 21 22 23 VictorySystemData default 24 CellSize = 450 ; This value controls the resolution of the Cells in the Victory system. Each cell is a 25 ; square of this width/height. The number of cells in a map is the determined by the 26 ; extents of the map and this value. So if our cell size was 450, a map that is 3150 units 27 ; wide and 2250 units high would have ((3150 / 450) = 7 * (2250 / 450) = 5) or 35 cells. 28 ; IMPORTANT: Do not make this value to small, as it could quickly eat up a lot of memory as 29 ; well as degrade performance. 30 31 ; The following variables control frame to frame erosion of the stats store in each cell. The frame to frame erosion is done so 32 ; that over time the stats fade down. This allows the system to discriminate an intense battle from a lot of small battles over a long 33 ; period of time. 34 ScalePerLogicFrame = 1.0 ; Each stat stored in a cell is scaled by this amount every logic frame. It should be greater than 35 ; 0 and less than or equal to 1.0. With the practical range being 0.7 - 0.999. The smaller the number 36 ; the 'faster' the system 'forgets'. Values above 1.0 are treated as 1.0 37 38 SubtractPerLogicFrame = 0.0 ; Each logic frame this value is subtracted from the stats in each cell. This value is here to 39 ; allow greater control over how the system 'Erodes' the stats in a cell. The value must be positive 40 ; and should not be greater than 2 or 3. For reference a single uint is worth 1.0 stat points from 41 ; the perspective of the Victory system. So if SubtractPerLogicFrame was set 1.0, 1 'death' and one 42 ; 'Kill' would be 'forgotten' per logic frame. 43 44 CellBonusRadius = 1.0 ; This value controls the range from the center of a cell in which units are give a victory bonus. 45 ; This actual range is a function of CellBonusRadius and CellSize, such that a value of 1.0 would 46 ; be a circle that completely contains 1 cell where the edge of the circle intersects the corners of 47 ; the cell. This value should not be below 1.0 to ensure that all the units that contributed to a 48 ; 'victor' are rewarded. Also making the value to large should be avoided. The formula for 49 ; the radius is; radius = (sqrt(2) * ((CellSize / 2) * CellBonusRadius). 50 ; NOTE: IF WE FIND PROBLEMS WITH UNITS GETTING MORE THAN 1 VICTORY BONUS AT A TIME 51 ; CHECK THIS VALUE FOR BEING TO LARGE. 52 53 End 54 55 ; The following INI Blocks control how a faction decides when a 'Victory' has happened. Each faction has the following values 56 ; AllyDeathScaleFactor 57 ; EnemyKillScaleFactor 58 ; VictoryThreshold 59 ; MajorUnitValue 60 ; MapToCellVictoryRatio 61 ; 62 ; Determining a victory for a given player is done as follows. 63 ; 64 ; if (NumberOfKillsOnMap * EnemyKillScaleFactor) - (NumberOfDeaths * AllyDeathScaleFactor) > VictoryThreshold 65 ; then if (NumberOfKillsInCell * EnemyKillScaleFactor) - (NumberOfDeaths * AllyDeathScaleFactor) > (VictoryThreshold * MapToCellVictoryRatio) 66 ; then give bonus to units in that cell. 67 68 ; Gondor 69 FactionVictoryData Gondor 70 AllyDeathScaleFactor = 1.0 ; Value this faction places on the loss of its own units. 71 EnemyKillScaleFactor = 1.1 ; Value this faction places on 'kills' of enemy units that it gets. 72 VictoryThreshold = 100.0 ; Thereshold needed for a 'Victory' 73 MajorUnitValue = 10.0 ; Value placed on special/major units (normal units are worth 1.0) 74 MapToCellVictoryRatio = 0.8 ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 75 ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory' 76 End 77 78 ; Rohan 79 FactionVictoryData Rohan 80 AllyDeathScaleFactor = 1.0 ; Value this faction places on the loss of its own units. 81 EnemyKillScaleFactor = 20.1 ; Value this faction places on 'kills' of enemy units that it gets. 82 VictoryThreshold = 100.0 ; Thereshold needed for a 'Victory' 83 MajorUnitValue = 10.0 ; Value placed on special/major units (normal units are worth 1.0) 84 MapToCellVictoryRatio = 0.8 ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 85 ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory' 86 End 87 88 ; Mordor 89 FactionVictoryData Mordor 90 AllyDeathScaleFactor = 1.0 ; Value this faction places on the loss of its own units. 91 EnemyKillScaleFactor = 1.1 ; Value this faction places on 'kills' of enemy units that it gets. 92 VictoryThreshold = 100.0 ; Thereshold needed for a 'Victory' 93 MajorUnitValue = 10.0 ; Value placed on special/major units (normal units are worth 1.0) 94 MapToCellVictoryRatio = 0.8 ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 95 ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory' 96 End 97 98 ; Isengard 99 FactionVictoryData Isengard 100 AllyDeathScaleFactor = 1.0 ; Value this faction places on the loss of its own units. 101 EnemyKillScaleFactor = 1.1 ; Value this faction places on 'kills' of enemy units that it gets. 102 VictoryThreshold = 10.0 ; Thereshold needed for a 'Victory' 103 MajorUnitValue = 10.0 ; Value placed on special/major units (normal units are worth 1.0) 104 MapToCellVictoryRatio = 0.8 ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be 105 ; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory' 106 End 107 ; neutral - CURRENTLY HAS NO EFFECT. 108 FactionVictoryData neutral 109 AllyDeathScaleFactor = 1.0 110 EnemyKillScaleFactor = 1.1 111 VictoryThreshold = 100.0 112 MajorUnitValue = 10.0 113 MapToCellVictoryRatio = 0.8 114 115 End 116 117 ; Observer - CURRENTLY HAS NO EFFECT. 118 FactionVictoryData Observer 119 AllyDeathScaleFactor = 0.1 120 EnemyKillScaleFactor = 0.2 121 VictoryThreshold = 3.0 122 MajorUnitValue = 4.0 123 End 124 125 ; Civilian - CURRENTLY HAS NO EFFECT. 126 FactionVictoryData Civilian 127 AllyDeathScaleFactor = 0.1 128 EnemyKillScaleFactor = 0.2 129 VictoryThreshold = 3.0 130 MajorUnitValue = 4.0 131 End
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sat Mar 28 08:18:23 2009 | Cross-referenced by PHPXref 0.7 |